package com.appspot.mypartymanager.service;

import java.util.List;

import com.appspot.mypartymanager.entity.party.Party;
import com.appspot.mypartymanager.exception.InvalidPartyException;

public interface PartyService {
	
	/**
	 * Creat a new Party 
	 * @param Party
	 * @throws InvalidPartyException 
	 */
	public void createParty(Party newParty) throws InvalidPartyException;
	
	/**
	 * Get Party by id
	 * @param key
	 */
	public Party getPartyById(Long id);
	
	/**
	 * Get Party by user mail google acount	
	 * @param ownerUserGoogleAcount
	 */
	public List<Party> getPartysByUser(String ownerUserGoogleAcount);
	
	/**
	 * Permanentily delete the Party
	 * @param id
	 */
	public void deleteParty(Long id);
	
	/**
	 * Update party
	 * @param Party
	 * @throws InvalidPartyException 
	 */
	public void updateParty(Party partyToUpdate) throws InvalidPartyException;

}
